package pers.supeijin.devtools.converter.wx2vue.converter.template;

import com.intellij.openapi.util.Pair;

/**
 * 模版绑定工具
 *
 * @author bluefox
 * @date 2021/1/27.
 */

public class BindUtils {
	/**
	 * 绑定起始标志
	 */
	public static final String BIND_START_TAG = "{{";
	/**
	 * 绑定结束标志
	 */
	public static final String BIND_END_TAG = "}}";
	/**
	 * 绑定语句的最小长度
	 */
    private static final int MINI_BIND_LENGTH=5;
	private BindUtils() {
	}

	/**
	 *获取绑定语句信息
	 * @param value
	 * @return info(第一个属性为起始位置，第二个属性为结束位置) {@link Pair<Integer,Integer>}
	 */
	public static Pair<Integer, Integer> getBindInfo(String value) {
		if (value != null && value.trim().length()>=MINI_BIND_LENGTH) {
			int startBindIndex = value.indexOf(BIND_START_TAG);
			int endBindIndex = value.indexOf(BIND_END_TAG);
			if (startBindIndex >= 0 && endBindIndex > startBindIndex) {
				return new Pair<>(startBindIndex, endBindIndex);
			}
		}
		return null;
	}

	/**
	 * 判断是否是绑定语句
	 * @param value 字符串
	 * @return true 标识是绑定语句，false 标识不是绑定语句
	 */
	public static boolean isBindStr(String value) {
		return BindUtils.getBindInfo(value) != null;
	}

}
